\documentclass[tikz,border=2mm]{standalone}
\usepackage{array,amsmath,mathptmx,xcolor,bbding,pifont,colortbl}
\usepackage[UTF8]{ctex}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
% 只需要这个就可以
\usepackage[thicklines]{cancel}
% 可以设置线条颜色，默认是黑色
\usepackage{xcolor}
\usepackage{tikz-cd}
\usepackage{tikz,graphicx,subfig,caption} % Required for drawing custom shapes
\usetikzlibrary{fit,matrix,chains,arrows,shapes,positioning,arrows.meta,chains,shadows,shapes.callouts,decorations.text,shapes.symbols,shapes.misc, positioning,decorations.pathreplacing,calc,backgrounds,}

% 额外添加
\usepackage{indentfirst}
\usepackage{diagbox}
\usepackage{amssymb}
\usepackage{pifont}

\begin{document} 
	\begin{tikzpicture}[>=latex,every node/.style={anchor=south west,,inner sep=0,fill=white}]
		\node(a)[anchor=north,align=center,fill=white,inner sep=0] at (0,0){\textcolor{blue}{\vphantom / a \vphantom /}};
		\node(b)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=0em]a.north){\textcolor{blue}{\vphantom / b \vphantom /}};
		\node(c)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=0em]b.north){\textcolor{blue}{\vphantom / c \vphantom /}};
		\node(d)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=0em]c.north){\textcolor{blue}{\vphantom / d \vphantom /}};
		\node(/)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.7em,yshift=0em]d.north){$/$};
		\node(e)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=0em]/.north){\textcolor{blue}{\vphantom / e \vphantom /}};
		\node(-)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=-0.1em]e.north){$-$};
		\node(*)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=-0.1em]-.north){$\ast$};
		\node(+)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.3em,yshift=0.1em]*.north){$+$};
		\node(t1)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.2em,yshift=-1.3em]d.south){(1) \textcolor{blue}{t1}};
		\node(t2)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=1.2em,yshift=-1.3em]t1.south){(2) \textcolor{blue}{t2}};
		\node(t3)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=-0.5em,yshift=-1.3em]t2.south){(3) \textcolor{blue}{t3}};
		\node(t4)[anchor=north,align=center,fill=white,inner sep=0] at ([xshift=0.2em,yshift=-1.3em]t3.south){(4) \textcolor{blue}{t4}结果};
		
		\draw[-] (c.south) |- ([xshift=-1.9em,yshift=0.7em]t1.north);
		\draw[-] (d.south) |- ([xshift=-1.9em,yshift=0.7em]t1.north);
		\draw[->] ([xshift=0em,yshift=0.1em]t1.north) -| ([xshift=-1.9em,yshift=0.7em]t1.north);
		\draw[-] ([xshift=0em,yshift=0.1em]t1.north) -| (/.south);
		
		\draw[-] (t1.south) |- ([xshift=-0.5em,yshift=1.0em]t2.north);
		\draw[-] (e.south) |- ([xshift=-0.5em,yshift=1.0em]t2.north);
		\draw[->] ([xshift=0em,yshift=0.1em]t2.north) -| ([xshift=-0.5em,yshift=1.0em]t2.north);
		\draw[-] ([xshift=0em,yshift=0.1em]t2.north) -| (-.south);
		
		\draw[-] (b.south) |- ([xshift=-2em,yshift=1.0em]t3.north);
		\draw[-] (t2.south) |- ([xshift=-2em,yshift=1.0em]t3.north);
		\draw[->] ([xshift=0em,yshift=0.1em]t3.north) -| ([xshift=-2em,yshift=1.0em]t3.north);
		\draw[-] ([xshift=0em,yshift=0.1em]t3.north) -| (*.south);
		
		\draw[-] (a.south) |- ([xshift=-2em,yshift=1.0em]t4.north);
		\draw[-] (t3.south) |- ([xshift=-2em,yshift=1.0em]t4.north);
		\draw[->] ([xshift=3em,yshift=0.3em]t4.north) -| ([xshift=-2em,yshift=1.0em]t4.north);
		\draw[-] ([xshift=3em,yshift=0.3em]t4.north) -| (+.south);
		\draw[->] ([xshift=3em,yshift=0.3em]t4.north) -- ([xshift=3em,yshift=-1em]t4.north);
		
		\begin{pgfonlayer}{background}
			\node [draw, draw=black, fill=white,fit=(a)(b)(c)(d)(/)(e)(*)(+)(t1)(t2)(t3)(t4)(-),inner sep=0.5em] {};
			\node [draw, draw=red, fill=white,fit=(a)(b)(c)(d)(/)(e)(*)(+)(-),inner sep=0.3em] {};
			\node [circle, draw=red, fill=white,fit=(/),inner sep=0em] {};
			\node [circle, draw=red, fill=white,fit=(-),inner sep=0em] {};
			\node [circle, draw=red, fill=white,fit=(*),inner sep=0em] {};
			\node [circle, draw=red, fill=white,fit=(+),inner sep=0em] {};
		\end{pgfonlayer}
		
		\node(formula)[anchor=north,align=left,fill=white,inner sep=0.3em, draw] at ([xshift=9em,yshift=0.3em]+.east){  
			(1) \ t1 \ = \ c \ / \ d \\
			(2) \ t2 \ = \ t1 \ - \ e \\
			(3) \ t3 \ = \ b \ * \ t2 \\
			(4) \ t4 \ = \ a \ + \ t3
			
		}; 
		
		\draw[purple!30, -{Triangle[width = 18pt, length = 0.8em]}, line width = 9pt] ([xshift=-3.2em,yshift=1.5em]formula.west) -- ([xshift=-0.5em,yshift=1.5em]formula.west);
		\node(note1)[draw, fill=blue!20,rectangle callout,callout relative pointer={(-0.3,-0.2)},rounded corners,align=center,inner sep=0.3em] at ([xshift=0.7em,yshift=0.5em]formula.north){ 四元式 };
		\node(sen)[anchor=north,align=left,fill=white,inner sep=0.3em, draw] at ([xshift=-1.3em,yshift=-1.3em]formula.south){  
			\textcolor{blue}{逆波兰式算符进栈之日，}  \\
			\textcolor{blue}{也就是四元式生成之时。}  
		};
		\node(note1)[draw, fill=yellow!20,rectangle callout,callout relative pointer={(0.1,-0.5)},rounded corners,align=center,inner sep=0.3em] at ([xshift=-7.8em,yshift=0em]formula.south){  \textcolor{red}{重要}\\ \textcolor{red}{结论} };
		
	\end{tikzpicture}
\end{document}
